package com.tchhy.provider.service

import com.tchhy.provider.data.common.BaseResp
import com.tchhy.provider.data.partner.response.MedicineDetailResp
import com.tchhy.provider.data.partner.MedicineKitApplyInfo
import com.tchhy.provider.data.partner.MedicineKitSalesInfo
import com.tchhy.provider.data.partner.request.ApplyDrugExaminationListResponseInfo
import com.tchhy.provider.data.partner.request.CommitApplyDataReq
import com.tchhy.provider.data.partner.request.SavePaymentInfoReq
import com.tchhy.provider.data.partner.response.*
import io.reactivex.Observable

/**
 * @author: admin
 * @date: 2019/8/20
 * @des:
 *
 **/
interface MedicineService {
    /**
     * @description 药箱数量
     * @param
     * @return
     * @author admin
     * @time 2019/8/20
     */
    fun medicineAcount(accout: String): Observable<BaseResp<MedicineKitApplyInfo>>


    /**
     * @description 获取药箱详情
     * @param
     * @return
     * @author admin
     * @time 2019/8/21
     */
    fun getMedicineOrderDetail(orderNumber: String): Observable<BaseResp<ApplyMedicineRes>>


    /**
     * @description 获取药箱销售的详情
     * @param
     * @return
     * @author admin
     * @time 2019/8/21
     */

    fun getMedicineKitSalesDetails(): Observable<BaseResp<MedicineKitSalesInfo>>

    /**
     * @description 获取收款码
     * @param
     * @return
     * @author admin
     * @time 2019/8/22
     */
    fun getPaymentCode(paymentAmount: Int, paymentChannel: Int): Observable<BaseResp<PaymentCodeInfo>>

    /**
     * @description 服务订单
     * @param
     * @return
     * @author admin
     * @time 2019/8/22
     */
    fun getOrderDetail(orderId: String): Observable<BaseResp<ServiceOrderDetailRes>>

    /**
     * @method 服务订单列表
     * @desc
     * @param pageNum
     * @param pageSize
     * @return
     */
    fun getServiceOrderList(pageNum: Int, pageSize: Int): Observable<BaseResp<ServiceOrdersRes>>

    /**
     * @description 支付结果
     * @param
     * @return
     * @author admin
     * @time 2019/8/23
     */
    fun getPaymentResult(paymentId : String): Observable<BaseResp<PaymentResultRes>>

    /**
     * @description 保存支付结果
     * @param
     * @return
     * @author admin
     * @time 2019/8/24
     */
    fun savePaymentResult(saveInfo: SavePaymentInfoReq): Observable<BaseResp<SavePaymentRes>>


    /**
     * @description 获取药箱详情
     * @param
     * @return
     * @author admin
     * @time 2019/8/21
     */
    fun getExamition(): Observable<BaseResp<DataListRes<ApplyDrugExaminationListResponseInfo>>>


    fun getApplyMedicineInfo(): Observable<BaseResp<ApplyReciveAddress>>


    fun commitApply(commitApplyRes: CommitApplyDataReq): Observable<BaseResp<CommitApplyRes>>

    fun getMedicineKitDetail(kitId: String): Observable<BaseResp<MedicineDetailResp>>
}